package top.zhdev.community.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import top.zhdev.community.entity.DiscussPost;

import java.util.List;

@Mapper
public interface DiscussPostMapper {

    /**
     * 查询指定userId的帖子数量,当userId等于0时，表示查询全部
     * @param userId
     * @return
     */
    int getDiscussPostRows(@Param("userId") int userId);

    /**
     * 获取指定用户发送的帖子，userId为0时，获取全部
     * @param userId
     * @param offset
     * @param limit
     * @param orderMode
     * @return
     */
    List<DiscussPost> getDiscussPosts(int userId, int offset, int limit, int orderMode);

    /**
     * 根据帖子id获取帖子详情
     * @param discussPostId
     * @return
     */
    DiscussPost getDiscussPostById(int discussPostId);

    /**
     * 更新帖子评论数量
     * @param id
     * @param commentCount
     * @return
     */
    int updateCommentCount(int id, int commentCount);

    /**
     * 发布帖子
     * @param post
     * @return
     */
    int insertDiscussPost(DiscussPost post);

    /**
     * 更新帖子状态
     * @param discussPostId
     * @param status
     * @return
     */
    int updatePostStatus(int discussPostId, int status);

    /**
     * 更改帖子状态
     * @param discussPostId
     * @param type
     * @return
     */
    int updatePostType(int discussPostId, int type);

    /**
     * 更新帖子分数
     * @param id
     * @param score
     * @return
     */
    int updateScore(int id, double score);
}
